package com.bailian.system.domain;

import java.math.BigDecimal;
import java.util.List;

import com.bailian.system.domain.vo.BlParkVo;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.bailian.common.annotation.Excel;
import com.bailian.common.core.domain.BaseEntity;

/**
 * 仓库基础信息对象 bl_warehouse
 * 
 * @author bailian
 * @date 2025-08-04
 */
public class BlWarehouse extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long warehouseId;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 仓库描述 */
    @Excel(name = "仓库描述")
    private String description;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String address;

    /** 所属园区 */
    @Excel(name = "所属园区")
    private Long parkId;

    /** 库房面积（㎡） */
    @Excel(name = "库房面积", readConverterExp = "㎡=")
    private String areaSize;

    /** 地面承重（吨/㎡） */
    @Excel(name = "地面承重", readConverterExp = "吨=/㎡")
    private String floorLoad;

    /** 层高（m） */
    @Excel(name = "层高", readConverterExp = "m=")
    private String floorHeight;

    /** 月台数量 */
    @Excel(name = "月台数量")
    private String platformCount;

    /** 出租单价（元/㎡/月） */
    @Excel(name = "出租单价", readConverterExp = "元=/㎡/月")
    private BigDecimal rentalPrice;
    /** 装卸设备配置 */
    @Excel(name = "装卸设备配置")
    private String equipmentConfig;

    /** 硬件配置（以，分割） */
    @Excel(name = "硬件配置", readConverterExp = "以=，分割")
    private String hardwareConfig;

    /** 消防等级 */
    @Excel(name = "消防等级")
    private String fireLevel;

    /** 消防设施（以，分割） */
    @Excel(name = "消防设施", readConverterExp = "以=，分割")
    private String fireFacilities;

    /** 安保配置 */
    @Excel(name = "安保配置")
    private String security;

    /** 增值服务（以，分割） */
    @Excel(name = "增值服务", readConverterExp = "以=，分割")
    private String additionalServices;

    /** 地址补充说明 */
    @Excel(name = "地址补充说明")
    private String addressDesc;

    /** VR全景链接 */
    @Excel(name = "VR全景链接")
    private String vrLink;

    /** 缩略图 */
    @Excel(name = "缩略图")
    private String thumbnailUrl;
    
    /** 仓库标签 */
    @Excel(name = "仓库标签")
    private List<BlParkTags> warehouseTags;

    @Excel(name = "仓库类型")
    private Long warehouseType;

    @Excel(name = "园区详情")
    private BlParkVo parkInfo;

    /** Banner页面类型 */
    @Excel(name = "Banner页面类型")
    private String bannerPage;

    /** 是否推荐 */
    @Excel(name = "是否推荐", readConverterExp = "0=否,1=是")
    private Integer isRecommend;

    /** 行业类型ID */
    @Excel(name = "行业类型ID")
    private Long industryDataId;

    // 仅用于查询过滤
    private Long parkAreaId;
    private Long tagId;
    // 是否支持VR：1 是，0 否，仅用于查询过滤
    private Integer isVr;

    public void setWarehouseId(Long warehouseId) 
    {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseId() 
    {
        return warehouseId;
    }

    public void setWarehouseName(String warehouseName) 
    {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseName() 
    {
        return warehouseName;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }

    public void setParkId(Long parkId) 
    {
        this.parkId = parkId;
    }

    public Long getParkId() 
    {
        return parkId;
    }

    public void setAreaSize(String areaSize)
    {
        this.areaSize = areaSize;
    }

    public String getAreaSize()
    {
        return areaSize;
    }

    public void setFloorLoad(String floorLoad) 
    {
        this.floorLoad = floorLoad;
    }

    public String getFloorLoad() 
    {
        return floorLoad;
    }

    public void setFloorHeight(String floorHeight) 
    {
        this.floorHeight = floorHeight;
    }

    public String getFloorHeight() 
    {
        return floorHeight;
    }

    public void setPlatformCount(String platformCount) 
    {
        this.platformCount = platformCount;
    }

    public String getPlatformCount() 
    {
        return platformCount;
    }

    public void setEquipmentConfig(String equipmentConfig) 
    {
        this.equipmentConfig = equipmentConfig;
    }

    public String getEquipmentConfig() 
    {
        return equipmentConfig;
    }

    public void setHardwareConfig(String hardwareConfig) 
    {
        this.hardwareConfig = hardwareConfig;
    }

    public String getHardwareConfig() 
    {
        return hardwareConfig;
    }

    public void setFireLevel(String fireLevel) 
    {
        this.fireLevel = fireLevel;
    }
    public void setRentalPrice(BigDecimal rentalPrice)
    {
        this.rentalPrice = rentalPrice;
    }

    public BigDecimal getRentalPrice()
    {
        return rentalPrice;
    }
    public String getFireLevel() 
    {
        return fireLevel;
    }

    public void setFireFacilities(String fireFacilities) 
    {
        this.fireFacilities = fireFacilities;
    }

    public String getFireFacilities() 
    {
        return fireFacilities;
    }

    public void setSecurity(String security) 
    {
        this.security = security;
    }

    public String getSecurity() 
    {
        return security;
    }

    public void setAdditionalServices(String additionalServices) 
    {
        this.additionalServices = additionalServices;
    }

    public String getAdditionalServices() 
    {
        return additionalServices;
    }

    public void setAddressDesc(String addressDesc) 
    {
        this.addressDesc = addressDesc;
    }

    public String getAddressDesc() 
    {
        return addressDesc;
    }

    public void setVrLink(String vrLink) 
    {
        this.vrLink = vrLink;
    }

    public String getVrLink() 
    {
        return vrLink;
    }

    public void setThumbnailUrl(String thumbnailUrl) 
    {
        this.thumbnailUrl = thumbnailUrl;
    }

    public String getThumbnailUrl() 
    {
        return thumbnailUrl;
    }

    public void setWarehouseTags(List<BlParkTags> warehouseTags)
    {
        this.warehouseTags = warehouseTags;
    }

    public List<BlParkTags> getWarehouseTags()
    {
        return warehouseTags;
    }

    public void setIsRecommend(Integer isRecommend) 
    {
        this.isRecommend = isRecommend;
    }

    public Integer getIsRecommend() 
    {
        return isRecommend;
    }

    public void setWarehouseType(Long warehouseType)
    {
        this.warehouseType = warehouseType;
    }

    public Long getWarehouseType()
    {
        return warehouseType;
    }

    public Long getParkAreaId() {
        return parkAreaId;
    }

    public void setParkAreaId(Long parkAreaId) {
        this.parkAreaId = parkAreaId;
    }

    public Long getTagId() {
        return tagId;
    }

    public void setTagId(Long tagId) {
        this.tagId = tagId;
    }

    public Integer getIsVr() {
        return isVr;
    }

    public void setIsVr(Integer isVr) {
        this.isVr = isVr;
    }

    public String getBannerPage() {
        return bannerPage;
    }

    public void setBannerPage(String bannerPage) {
        this.bannerPage = bannerPage;
    }

    public Long getIndustryDataId() {
        return industryDataId;
    }

    public void setIndustryDataId(Long industryDataId) {
        this.industryDataId = industryDataId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("warehouseId", getWarehouseId())
            .append("warehouseName", getWarehouseName())
            .append("description", getDescription())
            .append("address", getAddress())
            .append("parkId", getParkId())
            .append("areaSize", getAreaSize())
            .append("floorLoad", getFloorLoad())
            .append("floorHeight", getFloorHeight())
            .append("platformCount", getPlatformCount())
            .append("equipmentConfig", getEquipmentConfig())
            .append("hardwareConfig", getHardwareConfig())
            .append("fireLevel", getFireLevel())
            .append("fireFacilities", getFireFacilities())
            .append("security", getSecurity())
            .append("additionalServices", getAdditionalServices())
            .append("addressDesc", getAddressDesc())
            .append("vrLink", getVrLink())
                .append("rentalPrice",getRentalPrice())
            .append("thumbnailUrl", getThumbnailUrl())
            .append("warehouseTags", getWarehouseTags())
            .append("warehouseType", getWarehouseType())
            .append("bannerPage", getBannerPage())
            .append("isRecommend", getIsRecommend())
            .append("isVr", getIsVr())
            .append("industryDataId", getIndustryDataId())
            .toString();
    }
}
